home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Dev / Oberon / source / amiga / KeyMap.mod < prev    next >
Text File  |  1995-06-29  |  2KB  |  85 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: KeyMap.mod $
  4.   Description: Keymap definitions
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.8 $
  8.       $Author: fjc $
  9.         $Date: 1995/06/04 23:13:14 $
  10.  
  11.   $VER: keymap.h 36.3 (13.4.90)
  12.   Includes Release 40.15
  13.  
  14.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  15.       All Rights Reserved
  16.  
  17.   Oberon-A interface Copyright © 1994-1995, Frank Copeland.
  18.   This file is part of the Oberon-A Interface.
  19.   See Oberon-A.doc for conditions of use and distribution.
  20.  
  21. ***************************************************************************)
  22.  
  23. <* STANDARD- *>
  24.  
  25. MODULE [2] KeyMap;
  26.  
  27. IMPORT e := Exec, s := Sets;
  28.  
  29.  
  30. (*
  31. **      key map definitions for keymap.resource, keymap.library, and
  32. **      console.device
  33. *)
  34.  
  35. TYPE
  36.  
  37.   KeyMapPtr* = POINTER TO KeyMap;
  38.   KeyMap* = RECORD
  39.     loKeyMapTypes * : POINTER TO ARRAY 64 OF s.SET8;
  40.     loKeyMap *      : POINTER TO ARRAY 64 OF e.ULONG;
  41.     loCapsable *    : POINTER TO ARRAY 8 OF s.SET8;
  42.     loRepeatable *  : POINTER TO ARRAY 8 OF s.SET8;
  43.     hiKeyMapTypes * : POINTER TO ARRAY 64 OF s.SET8;
  44.     hiKeyMap *      : POINTER TO ARRAY 64 OF e.ULONG;
  45.     hiCapsable *    : POINTER TO ARRAY 8 OF s.SET8;
  46.     hiRepeatable *  : POINTER TO ARRAY 8 OF s.SET8;
  47.   END; (* KeyMap *)
  48.  
  49.   KeyMapNodePtr* = POINTER TO KeyMapNode;
  50.   KeyMapNode* = RECORD (e.NodeBase)
  51.     node *   : e.Node; (* including name of keymap *)
  52.     keyMap * : KeyMap;
  53.   END; (* KeyMapNode *)
  54.  
  55.   KeyMapResourcePtr* = POINTER TO KeyMapResource;
  56.   KeyMapResource* = RECORD (e.NodeBase)
  57.     node * : e.Node;
  58.     list * : e.List;        (* a list of KeyMapNodes *)
  59.   END; (* KeyMapResource *)
  60.  
  61. CONST
  62.  
  63. (* Key Map Types *)
  64.   shift *   = 0;
  65.   alt *     = 1;
  66.   control * = 2;
  67.   downUp *  = 3;
  68.   dead *    = 5;           (* may be dead or modified by dead key: *)
  69.                            (*   use dead prefix bytes              *)
  70.   string *  = 6;
  71.   nop *     = 7;
  72.  
  73.   noQual *  = {};
  74.   vanilla * = -{shift, alt, control}; (* note that SHIFT+ALT+CTRL is VANILLA *)
  75.  
  76. (* Dead Prefix Bytes *)
  77.   dpbMod * = 0;
  78.   dpbDead* = 3;
  79.  
  80.   dp2dIndexMask * = 0FH;     (* mask for index for 1st of two dead keys *)
  81.   dp2dFacShift  * = 4;       (* shift for factor for 1st of two dead keys *)
  82.  
  83.  
  84. END KeyMap.
  85.